Top 10k strings from HiSoft C v1.3 (1986)(HiSoft).tzx in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TZX] (TOSEC-v2007-01-01) /
Back to the directory listing
13 /*****************************/
8 char *s;
7 /* Standard Function Library */
7 /* Hisoft C */
6 char *s1, *s2;
6 --argv;
5 while (argc--)
5 argv = ¶m_byte_count + argc;
5 argc = param_byte_count/2 - 1;
3 int min(param_byte_count) auto
3 static int argc, *argv, min;
3 return max;
3 min = 32767;
3 if (*argv < min) min = *argv;
3 ++s;
3 inc hl
2 unsigned reg_hl, reg_de, reg_bc;
2 typedef struct _header HEADER, * HEADER_PTR;
2 typedef int FILE;
2 struct _header
2 need an lvalue
2 int max(param_byte_count) auto
2 extern unsigned strlen();
2 extern char *strcat(), *strncat(), *strcpy(), *strncpy(), *strchr(), *strrchr(),
2 char reg_a;
2 _setover(on)
2 _colour(h,i)
2 _beep(DE,HL)
2 HEADER _base, *_allocp;
2 /* Last changed 15 Aug 1985 */
2 /* Copyright (C) 1984 Hisoft */
2 /* Z80 register cache for inline code */
2 /* Two variadic arithmetic functions (see manual for details) */
2 /* Storage Allocation Structure and Variables */
2 /* Forward declarations for non-int library functions */
2 /* File system Structure */
2 /* End Header */
2 /* HEADER */
2 /* */
2 #define RL_L 0x15CB
2 #define RLA 0x17
2 #define PUSH_IY 0xE5FD
2 #define PUSH_IX 0xE5DD
2 #define PUSH_HL 0xE5
2 #define POP_IY 0xE1FD
2 #define POP_IX 0xE1DD
2 #define LD_L_A 0x6F
2 #define LD_IX_from 0x2ADD
2 #define LD_H_with 0x26
2 #define LD_HL_with 0x21
2 #define LD_HL_into 0x22
2 #define LD_HL_from 0x2A
2 #define LD_DE_with 0x11
2 #define LD_DE_into 0x53ED
2 #define LD_DE_from 0x5BED
2 #define LD_B_with 0x06
2 #define LD_BC_into 0x43ED
2 #define LD_BC_from 0x4BED
2 #define LD_A_with 0x3E
2 #define LD_A_into 0x32
2 #define LD_A_from 0x3A
2 #define JR_Z 0x28
2 #define JR_NC 0x30
2 #define JP_HL 0xE9
2 #define INC_B 0x04
2 #define EI 0xFB
2 #define DI 0xF3
2 #define CALL 0xCD
2 #define ADD_HL_DE 0x19
2 #define void int /* for functions which return no value */
2 #define _SAFETY 50 /* for
2 #define TRUE 1
2 #define NULL 0 /* for use with pointers */
2 #define FAST
2 #define FALSE 0 /* for Boolean operations */
2 #define ERROR -1
2 #define EOF -1 /* end of file value */
2 ###~#fo###~#fo#~#fo
2 ###~#fo###~#fo
2 static de,hl;
2 return i;
2 putc(i,2);
2 putc(h,2);
2 printf("\025%c",on?0:1);
2 inline(0xdd,0xe5,
2 if (i<0 | i>7) return -1;
2 while (*s)
2 unsigned _size;
2 struct _header * _ptr;
2 static int c;
2 static int argc, *argv, max;
2 static char *p;
2 static char *cs;
2 return s1;
2 return s - s1;
2 return min;
2 max = -32767;
2 inline(0xCD,0xD6B);
2 for (i = 0; i < 4; ++i)
2 char *s, c;
2 char *a;
2 char *a, *b, *c;
2 FILE *fp;
2 if (*argv > max) max = *argv;
2 0xed,0x5b,&de,
2 0xdd,0xe1);
2 0xcd,0x3b5,
2 0x2a,&hl,
2 *strpbrk(), *calloc(), *malloc(), *sbrk(), *fgets(), *gets();
1 void srand(n)
1 void qsort(list, num_items, size, cmp_func)
1 void puts(s)
1 void poke(address, value)
1 void long_set(a, n, d)
1 void long_multiply(c, a, b)
1 void long_init(a, n1, n0)
1 void long_copy(c, a)
1 void long_add(c, a, b)
1 void free(block)
1 void fputs(s, fp)
1 vkeep stre
1 use a predeclared structure for parameters
1 unterminated string or character constant on line above
1 unsigned strlen(s)
1 undefined variable(s)
1 undefined variable
1 undefined label:
1 typedef char * __char_ptr;
1 type should be function
1 tpo030 ld
1 tpo020 ld (hl)," "
1 tpo010 ld a,(de)
1 too much initialisation data
1 this variable was not in parameter list
1 structure cannot contain itself
1 storage class not valid in this context
1 stdio.lib
1 stdio.h
1 rgv > max) max = *argv;
1 py(dest, source)
1 plot(on,x,y)
1 pbto check filename
1 pbstack overflow
1 ong_init(k, 0x41c6,0x4e6d);
1 not in switch
1 not in loop or switch
1 not in loop
1 not a preprocessor command
1 not a defined member of a structure
1 no arrays of functions
1 need a type name
1 need a pointer
1 need a constant expression
1 need a : to follow a ? - check bracketting
1 multiple use of identifier
1 multiple default statements
1 missing 'while'
1 missing ')' in function declaration
1 missing ' '
1 macro buffer full
1 line(on,dx,dy)
1 int toascii(c)
1 int strspn(s1, s2)
1 int strncmp(s1, s2, n)
1 int strcspn(s1, s2)
1 int strcmp(s, t)
1 int sign(n)
1 int rand()
1 int peek(address)
1 int out(data, port)
1 int isxdigit(c)
1 int ispunct(c)
1 int isprint(c)
1 int isgraph(c)
1 int iscntrl(c)
1 int isascii(c)
1 int isalnum(c)
1 int inp(port)
1 int atoi(s)
1 int abs(n)
1 illegal parameter type
1 goto needs a label
1 generated code area is full
1 fi (hl),3 ; code file
1 expecting a primary here
1 duplicate declaration of structure tag
1 duplicate declaration - type mismatch
1 duplicate declaration - storage class mismatch
1 duplicate declaration
1 direct execution not possible when translating
1 define diagnostlist direct error translatinclude data
1 char *strrchr(s, c)
1 char *strpbrk(s1, s2)
1 char *strncpy(s1, s2, n)
1 char *strncat(s1,
1 char *strchr(s, c)
1 char *strcat(base, add)
1 char *strc
1 char *sbrk(n)
1 char *malloc(num_bytes)
1 char *gets(s)
1 char *fgets(s, n, fp)
1 char *calloc(n, size)
1 char _rnum[4];
1 cc_SCREEN$
1 cc.code
1 cc
1 cannot use this operator with float arguments
1 cannot open file
1 can only define identifiers as macros
1 can only call functions
1 beep(duration,pitch)
1 bad type combination
1 bad operand type
1 bad initializer (needs a '{')
1 bad function return type
1 bad formal parameter list
1 bad declarator
1 bad declaration
1 bad character constant
1 _setover(on);
1 Type y to run:
1 Side B : LIBRARY
1 Side A : COMPILER
1 RESTRICTION: use assignment or move() to initialise automatics
1 RESTRICTION: macros may not have parameters
1 RESTRICTION: cannot nest includes
1 RESTRICTION: Floating Point not implemented
1 RESTRICTION : floats not implemented
1 QPerfect TZX sampled from the original cassette by Church of the Latter-Day Speccy0
1 LIMIT: no more memory
1 LIMIT : too much global data
1 LIMIT : too many types
1 LIMIT : too many case statements
1 LIMIT : name table full
1 LIMIT : local symbol table full
1 LIMIT : global symbol table full
1 LIMIT : expression too complicated - too many operators
1 LIMIT : expression too complicated - too many arguments
1 HiSoft C Compiler V1.3
1 ERROR - 27 - undefined symbol
1 ERROR %d AT LINE %u
1 Destination of an assignment must be an lvalue
1 Copyright
1 Cannot initialise this (disallowed type)
1 Cannot initialise this (disallowed storage class)
1 C Compiler
1 ;"cc.code"
1 ;"Save to Microdrive 1 (y/n)?";
1 ;"Loading Hisoft C";
1 ; CY set iff OK;
1 /g}/o#:#w<2#w
1 /*==!=++--&&||<=<<>=>>->
1 /****** FILE SYSTEM ******/
1 /*** System Interface ***/
1 /* now zero fill the store */
1 /* Spectrum Graphics and
1 /* Some arithmetic functions */
1 /* Last changed 31 Oct 1985 */
1 /* Copyright (C) 1985 Hisoft */
1 /* String Handling Functions */
1 /* Storage Allocation and Freeing (Heap Management) */
1 /* Sorting function - a Shell sort */
1 /* Some Functions for 32 bit integer arithmetic */
1 /* Pseudo-Random Number Generator */
1 /* NB - the common ones are built-in for efficiency */
1 /* Input and Output */
1 /* Format conversion routine - ASCII to binary integer */
1 /* Character Test and Manipulate Functions */
1 /* An illustration of how to grub around in the store */
1 /* version 1.3 */
1 /* End */
1 *W\#"S\"K\6
1 **m~#"*mo&
1 *"m";n;"cc.code"
1 ) a[i] = 0;
1 (sy<<8)+sx;
1 ®_bc, /* ld bc,(reg_bc) */
1 $$=? STXW<>RP|^&OQ+-*/%*&-!~VU
1 #define HEAPSIZE 1000
1 ###~#fo#~#fo
1 #"a\"c\"e\*
1 while(c = *s++)putchar(c);
1 unsigned duration,pitch;
1 static sx,sy,de,bc;
1 static int c;
1 static ft;
1 return _colour(16,i);
1 return _colour
1 putchar('\n');
1 product, x);
1 pitch=pitch/10;
1 inline(0xed,0x5b,&de,
1 inline(0xdd,0x46,4,
1 inline(0xcd,25236);
1 if (dy<0)
1 if (dx<0)
1 if ( ! pitch)
1 ft=duration*pitch/10;
1 bc=(dy<<8)+dx;
1 b,8+17 ; 8 bytes file header, 17 ungotten characters
1 _setover(on);
1 _exit(n);
1 _beep(ft,cast(unsigned)43750/pitch-30);
1 : does not follow a ? properly
1 1984,6 HiSoft
1 1984 HISOFT ":
1 while (n-- && *s2) *s++ = *s2++;
1 while (n)
1 while (isspace(*s)) ++s;
1 while (isdigit(c = *s++)) value = 10 * value + c - '0';
1 while (c = *s++) putc(c, fp);
1 while (TRUE);
1 while (TRUE)
1 while (--n > 0 && (c = getc(fp)) != EOF)
1 while (*t++);
1 while (*s1 == *s2)
1 while (*s) ++s;
1 while (*s == *t)
1 while (*result++ = *source++) ;
1 while (*dest++ = *add++);
1 while (*dest) ++dest;
1 while ((c = getchar())
1 value = 0;
1 unsigned n;
1 unsigned n1,n0;
1 unsigned n, d;
1 unsigned n, size;
1 static unsigned u, i;
1 static unsigned gap, byte_gap, i;
1 static unsigned nbytes;
1 static int i;
1 static int i, j;
1 static int c, val
1 static int c;
1 static char x[4], product[4];
1 static char k[4];
1 static char *t;
1 static char *s;
1 static char *s, c;
1 static char *result;
1 static char *p,
1 static char *dest;
1 static HEADER *p, *q;
1 static HEADER *p, *q;
1 sign = 1;
1 s = NULL;
1 return s;
1 return ptr;
1 return p;
1 return p-s-1;
1 return dest;
1 return NULL;
1 return *s1 - *s2;
1 return *s - *t;
1 return ((c == EOF && cs == s) ? NULL : s);
1 return sign * value;
1 return n<0 ? -n : n ;
1 return n ?
1 return isprint(c) & ! isalnum(c);
1 return isdigit(c) | (c >= 'A' & c <= 'F');
1 return isalpha(c) | isdigit(c) ;
1 return c >= ' ' & c < '\177' ;
1 return c > ' ' & c < '\177' ;
1 return c < 0x80 ;
1 return c < ' ' | c == '\177' ;
1 return c & 0x7F;
1 return base;
1 return * cast(__char_ptr) address;
1 return ((_rnum[3] << 8) + _rnum[2]) & 0x7FFF;
1 result = dest;
1 reg_bc = port; reg_hl = data;
1 ptr = malloc(length = n * size);
1 p=heap_ptr;
1 p = q->_ptr;
1 p = cast(HEADER_PTR) block - 1;
1 nbytes = (num_bytes + (sizeof(HEADER) - 1)) / sizeof(HEADER) + 1;
1 move(ptr+1, ptr, length-1);
1 move(c, a, 4);
1 min and max are in "stdio.
1 long_set(product, 0,0);
1 long_multiply(_rnum, _rnum, k);
1 long_init(k, 0,0x3039);
1 long_init(_rnum, 0,n);
1 long_copy(c, product);
1 long_add(_rnum, _rnum, k);
1 int (*cmp_func)();
1 int num_items, size;
1 inline(0xe1,0xe1,0xe1,
1 if (q + q->_size == p)
1 if (p + p->_size == q->_ptr)
1 if (heap_ptr+n > heap+HEAPSIZE) return ERROR;
1 if (d < 3) a[d+1] = n >> 8;
1 if ((q = _allocp) == NULL) /* no free list */
1 if (!n) return 0;
1 if ( ! ptr) return NULL;
1 if ( ! num_bytes) return NULL;
1 if (*s == '-') { ++s; sign = -1; }
1 heap_ptr += n;
1 for(ft=0;ft<duration;++ft)
1 for (q = _allocp; !(p > q && p < q->_ptr); q = q->_ptr)
1 for (i=0; i<4; ++i
1 for (gap = num_items >> 1; gap > 0; gap >>= 1)
1 else if (*s == '+') ++s;
1 else q->_ptr = p;
1 else p->_ptr = q->_ptr;
1 do ; while (*p++);
1 do if (*t == c) s = t;
1 dest = base;
1 char *sbrk();
1 char *s, *t;
1 char *list;
1 char *dest, *source;
1 char *block;
1 char *base, *add;
1 char *a, *c;
1 c = toupper(c);
1 c = *s2;
1 byte_gap = gap * size;
1 because they are variadic
1 a[d] = n & 0xff;
1 a[3] = n1 >> 8;
1 a[2] = n1 & 0xff;
1 a[1] = n0 >> 8;
1 a[0] = n0 & 0xff;
1 _allocp = q;
1 FAST char length;
1 FAST char *ptr;
1 /* split block and allocate tail */
1 *s = NULL;
1 *ptr = 0;
1 *cs = 0;
1 *cs = '\0';
1 * cast(__char_ptr) address = value;
1 sy= 0xFF;
1 sx= 0xFF;
1 for(pitch=4630;++pitch;);
1 dy= -dy;
1 dx= -dx;
1 Sound Functions */
1 0x2b,0xc3,0x55,0);
1 ((c==-1 && cs==s) ?
1 } /* end while TRUE */
1 if (q >= q->_ptr && (p > q || p < q->_ptr)) break;
1 if ((*cs++ = c) == '\n') break;
1 heap[HEAPSIZE],
1 for (j = i; j >= 0; --j)
1 NULL : s );
1 Adapted from "Learning to Program in C" by Thomas Plum.
1 0xE5, /* push hl */
1 0xE1DD, /* pop ix */
1 0xE1, /* pop hl */
1 0xC9); /* ret */
1 0xC1, /* pop bc */
1 0x69ED); /* out (c),l */
1 0x68ED, /* in l,(c) */
1 0x4BED,
1 0x2A, ®_hl, /* ld hl,(reg_hl) */
1 0x26, 0, /* ld h,0 */
1 *heap_ptr=heap;
1 ( n<0 ? -1 : 1 ) : 0 ;
1 !=EOF && c!='\n')
1 p = p->_ptr;
1 u >>= 8;
1 u += *a++ + *b++;
1 q->_size += p->_size;
1 q->_ptr = p->
1 q = p;
1 p->_size += q->_ptr->_size;
1 p->_ptr = q->_ptr->_ptr;
1 if (strchr(s2, *s1)) return s1;
1 if (strchr(s2, *s)) break;
1 if (p->_size >= nbytes) /* big enough */
1 if (p == _allocp) /* wrapped around free list */
1 if (*s == c) return
1 if (! *s) return 0;
1 if ( ! strchr(s2, *s)) break;
1 if ( ! --n) break;
1 if ( ! *s1) return 0;
1 if ( ! *s) return NULL;
1 for (i = gap; i < num_items; ++i)
1 _base._size = 0;
1 _base._ptr = _allocp = q = &_base;
1 --n;
1 ++s; ++t;
1 ++s1; ++s2;
1 ++s1;
1 *s++ = ( c ? ( c = *s2++ ) : 0 ) ;
1 *cs++ = c;
1 *c++ = u & 0xff;
1 or a
1 ld hl,tbuff+11
1 ld egisters destroyed
1 ld b,10 ; copy filename and space-fill
1 ld (hl),a
1 jr z,tpo020
1 jr tpo030
1 inc de
1 djnz tpo020
1 djnz tpo010
1 E RPW !"#$%&'()*+,-./DDDDDDDDDD:;<=>?@LLLLLLLLLLLLLLLLLLLLLLLLLL[\]^L`LLLLLLLLLLLLLLLLLLLLLLLLLL{|}~
1 long_set(x, a[i-j] * b[j], i);
1 long_add(product,
1 for (p = list + i * size - byte_gap; p >= list; p -= byte_gap)
1 0xed,0x4b,&bc,
1 0xdd,0x4e,6,
1 0xcd,0x24ba);
1 0xcd,0x22e5);
1 }
1 {
1 return cast(__char_ptr) (p+1);
1 p->_size = nbytes;
1 p = _allocp;
1 if (p->_size == nbytes) q->_ptr = p->_ptr; /* just right size */
1 if ((p = cast(HEADER_PTR) sbrk(nbytes * sizeof(HEADER))) == ERROR)
1 free(p+1);
1 else
1 _allocp = q;
1 }
1 {
1 swap(p, p + byte_gap, size);
1 return NULL;
1 if ((*cmp_func)(p, p + byte_gap) <= 0) break;
1 p->_size -= nbytes;
1 p->_size = nbytes;
1 p += p->_size;